

#ifdef _UNIT_TEST

#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>


int main(int argc, char* argv[])
{
	// Get the top level suite from the registry
	CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();

	// Adds the test to the list of test to run
	CppUnit::TextUi::TestRunner runner;
	runner.addTest( suite );

	// Change the default outputter to a compiler error format outputter
	runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), std::cerr ) );
	// Run the tests.
	bool wasSucessful = runner.run(); 

	// Return error code 1 if the one of test failed.
	return wasSucessful ? 0 : 1;  
}


#endif
//
//int main(int argc,char* argv[])
//{
//	
//
//
//	
//	////
//	////Float3D rx = acos( (~vx * build_vector_3D(1,0,0))(0,0) / vx.Length() );
//	////Float3D ry = acos( (~vy * build_vector_3D(0,1,0))(0,0) / vx.Length() );
//	////Float3D rz = acos( (~vz * build_vector_3D(0,0,1))(0,0) / vx.Length() );
//	////Matrix3D matrix_x = stretch_XYZ(1/vx.Length(),1/vy.Length(),1/vz.Length()) * rotate_Z(rx) * move_XYZ(-tri.get_pos_pt(0)(0,0),-tri.get_pos_pt(0)(1,0),-tri.get_pos_pt(0)(2,0));
//	////Matrix3D matrix_y = stretch_XYZ(1/vx.Length(),1,1) * rotate_Z(ry) * move_XYZ(-tri.get_pos_pt(0)(0,0),-tri.get_pos_pt(0)(1,0),-tri.get_pos_pt(0)(2,0));
//	////matrix_y(0,0) = 1;				matrix_y(0,1) = vy.x();		matrix_y(0,2) = 0;				matrix_y(0,3) = -tri.get_pos_pt(1)(0,0);
//	////matrix_y(1,0) = 0;				matrix_y(1,1) = vy.y();		matrix_y(1,2) = 0;				matrix_y(1,3) = -tri.get_pos_pt(1)(1,0);
//	////matrix_y(2,0) = 0;				matrix_y(2,1) = vy.z();		matrix_y(2,2) = 1;				matrix_y(2,3) = -tri.get_pos_pt(1)(2,0);
//	////matrix_y(3,0) = 1;				matrix_y(3,1) = 1/vy.Length();matrix_y(3,2) = 0;			matrix_y(3,3) = 0;
//
//	////Matrix3D matrix_z;
//	////matrix_z(0,0) = 1;				matrix_z(0,1) = 0;		matrix_z(0,2) = 0;					matrix_z(0,3) = -tri.get_pos_pt(2)(0,0);
//	////matrix_z(1,0) = 0;				matrix_z(1,1) = 1;		matrix_z(1,2) = 0;					matrix_z(1,3) = -tri.get_pos_pt(2)(1,0);
//	////matrix_z(2,0) = vz.x();			matrix_z(2,1) = vz.y();	matrix_z(2,2) = vz.z();				matrix_z(2,3) = -tri.get_pos_pt(2)(2,0);
//	////matrix_z(3,0) = 0;				matrix_z(3,1) = 0;		matrix_z(3,2) = 1/vz.Length();		matrix_z(3,3) = 0;
//
//	////Matrix3D matrix = matrix_x * matrix_y * matrix_z;
//
//
//
//	//Matrix3D matrix;
//	//matrix(0,0) = 1;				matrix(0,1) = 0;		matrix(0,2) = 0;				matrix(0,3) = x;
//	//matrix(1,0) = 0;				matrix(1,1) = 1;		matrix(1,2) = 0;				matrix(1,3) = y;
//	//matrix(2,0) = 0;				matrix(2,1) = 0;		matrix(2,2) = 1;				matrix(2,3) = z;
//	//matrix(3,0) = 0;				matrix(3,1) = 0;		matrix(3,2) = 0;				matrix(3,3) = 1;
//
//	//pt = matrix * pt;
//	//pt /= pt(3,0);
//	return 0;
//}